// import com.alibaba.druid.sql.ast.*;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor*;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include <string>
#include <list>
#include "../SQLStatementImpl.h"
#include "../SQLDeclareItem.h"
#include "../../../utils/common_ptr.h"

class SQLName;
class SQLDataType;
class SQLASTVisitor;
class SQLColumnConstraint;

class SQLDeclareStatement : public SQLStatementImpl
{
public:
  SQLDeclareItem_list_ptr items;

  SQLDeclareStatement();

  SQLDeclareStatement(SQLName_ptr name, SQLDataType_ptr dataType);

  SQLDeclareStatement(SQLName_ptr name, SQLDataType_ptr dataType, SQLExpr_ptr value);
  SHAREDOBJECT(SQLDeclareStatement);

  void accept0(SQLASTVisitor_ptr visitor);

  SQLDeclareItem_list_ptr getItems();

  void addItem(std::shared_ptr<SQLDeclareItem> item);
};
